- Linux系统会为各种功能创建不同的用户账户,而这些账户并不是真的用户,这些账户叫做系统账户,是系统上运行的各种服务进程访问资源用的特殊账户,所有运行在后台的服务都需要一个系统用户账户登录到Linux系统上
- Linux为系统账户预留了500以下的UID值,为普通用户创建账户时,大多数Linux系统会从500开始,将第一个可用UID分配给这个账户
- Linux系统将用户密码保存在另一个单独的文件中(叫做shadow文件,位置在
/etc/shadow
),只有特定的程序可以访问这个文件
useradd命令可以一次性创建新用户账户及设置用户HOME目录结构,useradd命令使用系统的默认值以及命令行参数来设置用户账户,系统默认值被设置在
/etc/default/useradd
文件中,可以使用加入了-D选项的useradd命令查看所有Linux系统中的这些默认值:# /user/sbin/useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/base
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
在创建新用户时,如果不在命令行中指定具体的值,useradd命令就会使用-D选项所显示的那些默认值:
- 新用户被添加到GID为100的公共组
- 新用户的HOME目录将会位于/home/loginname
- 新用户帐号密码在过期后不会被禁用
- 新用户帐号为被设置过期日期
- 新用户账户将bash shell作为默认shell
- 系统会将
/etc/skel
目录下的内容复制到用户的HOME目录下 - 系统为该用户账户在mail目录下创建一个用于接收邮件的文件
useradd命令允许管理员创建一份默认的HOME目录配置,然后把它作为创建新用户HOME目录的模板,这样就能自动在每个新用户的HOME目录里放置默认的系统文件,在本例中,系统会自动将/etc/skel目录下的文件复制到你创建的每个用户的HOME目录。
默认情况下,useradd命令不会创建HOME目录,但是-m命令行选项会使其创建HOME目录,例如
useradd -m test
。
- 默认情况下userdel命令会只删除
/etc/passwd
文件中的用户信息,而不会删除系统中属于该账户的任何文件,如果加上-r参数,userdel会删除用户的HOME目录以及邮件目录
- 组权限允许多个用户对系统中的对象(比如文件、目录、设备等)共享一组共用的权限
- Ubuntu会为每个用户创建一个单独的与用户帐号同名的组,在添加用户前后可用grep命令或tail命令查看/etc/group文件的内容比较
系统账户用的组通常会分配低于500的GID值,而用户组的GID则会从500开始分配,
/etc/group
文件有4个字段:组名
组密码
GID
属于该组的用户列表
- umask命令用来设置所创建文件和目录的默认权限,例如我的系统中输入umask命令控制台会输出0002,第一位代表了一项特别的安全特性,叫做粘着位,后面的3位表示文件或目录对应的umask八进制值,需要需要的是umask值只是一个掩码,它会屏蔽掉不想授予该安全级别的权限,要把umask值从对象的全权限值中减掉,对文件来说,全权限的值为666,而对目录来说,则是777。在大多数Linux发行版中,umask值通常会设置在
/etc/profile
启动文件中,不过有一些是设置在/etc/login.defs
文件中,例如ubuntu,可以使用umask命令为默认的umask设置一个新值